﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MS.InformationManagement.Core.Support;

namespace MS.InformationManagement.BLL.DistribucionRadicado
{
    public class DistributionCommand : IBaseCommand
    {
        private Guid _recibido;
        private string _userName;
        private string _idRadicado;
        private string _lista;

        public DistributionCommand(Guid recibido, string lista, string idRadicado, string userName)
        {
            _recibido = recibido;
            _userName = userName;
            _lista = lista;
            _idRadicado = idRadicado;
        }

        public void Execute()
        {
            try
            {
                RecibirRadicadoDistribuido recibirRadicado = new RecibirRadicadoDistribuido(_recibido, _idRadicado, _userName);
                DeleteRadicadoCorrespondenciaCommand delradicado = new DeleteRadicadoCorrespondenciaCommand(_lista, _idRadicado, _userName,_recibido);

                recibirRadicado.Execute();
                delradicado.Execute();
            }
            catch (Exception ex)
            {
                Undo();
                throw ex;
            }

        }

        public void Undo()
        {
            DeleteRadicadoCorrespondenciaCommand delradicado = new DeleteRadicadoCorrespondenciaCommand(_lista, _idRadicado, _userName, _recibido);
            delradicado.Undo();
        }
    }
}
